﻿#ifndef __DUMMY_NODE_H__
#define __DUMMY_NODE_H__

#include "antlr4-runtime.h"
#include "macros.h"

#define dummyValue  u8"✖"

namespace cyclone::parser
{

    using antlr4::Parser;
    using antlr4::ParserRuleContext;
    using antlr4::Token;
    using antlr4::tree::ParseTree;
    using antlr4::tree::ParseTreeVisitor;

    class DummyNode : public ParserRuleContext
    {
        DISALLOW_COPY_AND_ASSIGN(DummyNode);

    public:
        DummyNode(ParserRuleContext *pNode);
        virtual ~DummyNode() {}

        size_t getContextId() const override;
        std::string toStringTree(bool pretty = false) override;
        virtual std::string toString()override;

        std::string toStringTree(Parser *parser, bool pretty = false)override;

        virtual antlrcpp::Any accept(ParseTreeVisitor *visitor)override;
        virtual std::string getText()override;
        antlr4::misc::Interval getSourceInterval()override;

        static bool isDummyNode(ParserRuleContext *node);
        static ssize_t dummyNodeContentId();
        std::string type;


    };

} // namespace cyclone::parser

#endif // __DUMMY_NODE_H__
